3D Gaussian Splatting
= 3DGS
複数の元写真から3D Gaussianを生成し、これらの3D Gaussianをカメラの姿勢に合わせて2D画面にsplatすることで、自由視点2D画像を生成できる技術
3D Gaussian とは
- 中心点の位置、共分散、透明度、視点方向依存の色情報を持つ3次元表現の基本単位
- 形状だけでなく視点方向依存の色情報を持つ
- → 複雑な光の反射特性も近似できる
- 点群データの各点を楕円形で表現することで、異なる視点からの見え方の変化を表現することが可能になっている
- 楕円形は視点によって見え方が異なるため
3D Gaussian の学習方法
- 画像から学習できるパラメータ(3D Gaussian i に関するもの)
- pwi: 3D Gaussian分布の世界座標における中心点
- qi: 3D Gaussianの回転(クォータニオン)
- si: 3D Gaussianのスケール
- hi: 3D Gaussianの球面調和パラメータ(視点方向依存の色情報)
- αi: 3D Gaussianの不透明度
- 設定値(学習扶養の仮想カメラの設定に関する値)
- Rcw: カメラのローカル座標系における回転
- tcw: カメラのローカル座標系における並進
- K: カメラの内部パラメータ
学習の流れ:
- 3D Gaussianの中心点を2D画面に投影するときの座標値を計算する
- 3D Gaussianの中心点 pwをカメラ座標系の点 pc に変換
- pc=Rcwpw+tcw
- ピンホールモデルを用いて、カメラ座標系の点 pcを画面に落とすときのピクセル座標値を計算
- u(pc)=[xfx/z+cxyfy/z+cy]
- x, y, z は pc の各成分
- fx,fy は焦点距離
- cx,cy は画像センサーの中心位置
- u(pc)=[xfx/z+cxyfy/z+cy]
- 3D Gaussianの中心点 pwをカメラ座標系の点 pc に変換
- 3D Gaussianの3D共分散を計算する
- 3D共分散は3x3の半正定値行列だが、このままだと勾配降下法などで更新する際に、更新後に半正定値であることを保証できない
- → 結果の正定値性を保証できる回転 q と各軸のスケール s の合成で表現する
- 3D Gaussianの3D共分散を2D画面に投影するときの2D共分散を計算する
- カメラの姿勢に応じて、見えた3D Gaussianの色を計算する
- 3D Gaussian Splattingではレイトレーシングはしないが、球面調和関数を用いて光の反射特性を近似できる
- 球面調和関数 = 球面版のフーリエ級数
- 無限個の球面基底とそれぞれの係数の線形結合で、視点方向に依存し、色が変化できる球を表現できる
- これまでの計算情報を用いて、3Dの画像を生成する